package com.itheima.reggie.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.itheima.reggie.common.ResultInfo;
import com.itheima.reggie.domain.Dish;
import com.itheima.reggie.domain.Setmeal;
import com.itheima.reggie.service.SetmealService;
import com.sun.xml.bind.v2.model.core.ID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

// 套餐模块
@RestController
public class SetmealController {


    @Autowired //注入
    private SetmealService setmealService;


    // 查询所有显示页面
    @GetMapping("/setmeal/page")  //前端是get请求  setmeal/page?page=1&pageSize=10
    public ResultInfo findAll(@RequestParam(name = "page") Integer pageNum, //分页查询必用这个@RequestParam
                              @RequestParam(name = "pageSize") Integer pageSize,
                                String name){ // 他可能是带名字的条件查询 所以加上name属性
        // 调用service的方法
      Page <Setmeal> setmeals= setmealService.findAll(pageNum,pageSize,name);
      //记住因为要返回结果，所以要有参数去接 因为是分页所以用Page 懂？
       // 返回结果
        return ResultInfo.success(setmeals);
    }


    // 新增
    @PostMapping("/setmeal")
    public ResultInfo save(@RequestBody Setmeal setmeal){ //接收参数
        // 调用方法新增 没有返回值
        setmealService.save(setmeal);
        // 返回结果
        return ResultInfo.success();
    }

    // 删除
    @DeleteMapping("/setmeal")
    public ResultInfo delete(@RequestParam List<Long> ids){ // 接收参数
        // 调用删除
        setmealService.delete(ids);
        // 返回结果
        return ResultInfo.success();
    }
    //修改回显
    @GetMapping("/setmeal/{id}")
    public ResultInfo updateById(@PathVariable long id){// 接受参数
        // 调用方法
        Setmeal setmeals=setmealService.updateById(id);
        // 返回结果
        return ResultInfo.success(setmeals);
    }
    // 修改
    @PutMapping("/setmeal")
    public ResultInfo update(@RequestBody Setmeal setmeal){ //接受参数
        // 调用方法
       setmealService.update(setmeal);
       // 返回结果
        return ResultInfo.success();
    }

    // 停售起售
     @PostMapping("/setmeal/status/{status}")
     public ResultInfo updateStatus(@PathVariable Integer status, // 路径传参 直接就@PathVariable
                                    @RequestParam List<Long>  ids){ // 可能是批量删除所以我们直接用List集合
        // 调用方法
       setmealService.updateStatus(status,ids);
       // 返回结果
        return ResultInfo.success();
     }






}
